# 数据输入模块：负责获取集装箱信息和货物列表

def get_container_info():
    """获取集装箱信息，包括尺寸、总重量限制和前后轴重量限制"""
    print("===== 请输入集装箱信息 =====")
    length = float(input("集装箱长度(米): "))
    width = float(input("集装箱宽度(米): "))
    height = float(input("集装箱高度(米): "))
    max_weight = float(input("集装箱总重量限制(kg): "))
    front_axle_limit = float(input("前轴重量限制(kg): "))  # 集装箱前部区域重量限制
    rear_axle_limit = float(input("后轴重量限制(kg): "))   # 集装箱后部区域重量限制
    front_length = float(input("前轴控制区域长度(米): "))  # 前几米属于前轴承重区域
    
    return {
        'length': length,
        'width': width,
        'height': height,
        'max_weight': max_weight,
        'front_axle_limit': front_axle_limit,
        'rear_axle_limit': rear_axle_limit,
        'front_length': front_length,
        'rear_length': length - front_length  # 计算后轴控制区域长度
    }

def get_cargo_list():
    """获取货物列表，包括每个货物的尺寸、重量和数量"""
    cargo_list = []
    print("\n===== 请输入货物信息 =====")
    num_cargo_types = int(input("货物种类数量: "))
    
    for i in range(num_cargo_types):
        print(f"\n----- 第{i+1}种货物 ----- ")
        cargo_id = input("货物ID: ")
        length = float(input("长度(米): "))
        width = float(input("宽度(米): "))
        height = float(input("高度(米): "))
        weight = float(input("单件重量(kg): "))
        quantity = int(input("数量: "))
        
        cargo_list.append({
            'cargo_id': cargo_id,
            'length': length,
            'width': width,
            'height': height,
            'weight': weight,
            'quantity': quantity,
            'volume': length * width * height
        })
    
    # 按体积从大到小排序，优化装载效率
    return sorted(cargo_list, key=lambda x: x['volume'], reverse=True)